﻿using SIR.Common;
using System.Collections.Generic;

namespace SIR.Entities.Interfaces
{
	/// <summary>
	/// A user within the system including the profile, library, and favorite images
	/// </summary>
	public interface IUser : IEntity
	{
		/// <summary>
		/// Gets or sets the nickname for the user
		/// </summary>
		string Nickname { get; set; }
		/// <summary>
		/// Gets or sets the email for the user
		/// </summary>
		string Email { get; set; }
		/// <summary>
		/// Gets the user's library
		/// </summary>
		ILibrary Library { get; }
		/// <summary>
		/// Gets the list of favorite images for the user
		/// </summary>
		IReadOnlyCollection<IFavoriteImage> FavoriteImages { get; }
		/// <summary>
		/// Gets the image Ids from the list of favorite images
		/// </summary>
		IReadOnlyCollection<long> FavoriteImageIds { get; }
	}
}

